#pragma once

#include <NxOgre.h>

class PhysDelCallback : public NxOgre::DeletionCallback 
{

	void onActorDelayDeleteBegin(NxOgre::DelayedActor * da) 
	{
		// An actor is wanting to be deleted. I shall assign the Actor's SceneNode to that lovely fade material and shader I have in the video.
	}

	bool onActorDelayDelete(NxOgre::DelayedActor * da) 
	{
		// This actor is still in the process of fading out and moving around, so I'll put it off for now. But when it's finished, I'll return a "true" and it'll be deleted.
		return false;
	}

	bool onActorDelayDelete(NxOgre::DelayedActor * da, NxReal r) 
	{
		// This actor is still in the process of fading out and moving around, so I'll put it off for now. But when it's finished, I'll return a "true" and it'll be deleted.
		return true;
	}

	void onActorDelayDeleteEnd(NxOgre::DelayedActor * da) 
	{
		// I am the last function to see this Actor before it's sentenced to death, to avoid memory leaks I should clean up anything which I created in DeleteBegin
	}
};